home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / SHADOW-1.{2A / CHANGES.{_7 < prev    next >
Text File  |  1999-09-17  |  31KB  |  588 lines

  1. $Id: CHANGES,v 1.25 1999/03/07 19:14:25 marekm Exp $
  2.  
  3. shadow-981228 => shadow-19990307
  4.  
  5. - added support for setting process priority in /etc/limits
  6. - i18n: updated Greek translation
  7. - i18n: added Polish translation by Arkadiusz Miskiewicz
  8. - documented the -p option in useradd.8 and usermod.8 man pages
  9. - some "const" gcc warning fixes
  10. - attempt to fix lib/snprintf.c compilation problems
  11. - added restart/reload/force-reload to /etc/init.d/logoutd (found by lintian)
  12. - always require password for root logins (even with NO_PASSWORD_CONSOLE)
  13. - workaround for RedHat's CREATE_HOME feature in /etc/login.defs
  14. - changed to Y2K compatible version numbering
  15. - more Y2K fixes, use the ISO 8601 date format (yyyy-mm-dd) for default
  16.   values of user-entered dates (you can still enter dates in any format
  17.   supported by GNU date)
  18. - oops, added doc/README.nls to list of files to distribute
  19. - added missing sanitize_env() call to src/login.c
  20. - debian/rules installs /bin/login non-setuid by default, just in case...
  21. - build Debian packages with cracklib support (depends on cracklib-runtime)
  22.  
  23. shadow-980724 => shadow-981228
  24.  
  25. - login now clears the username in argv[] (in case someone types the
  26.   password instead of username, by mistake)
  27. - i18n support, Greek translation (Nikos Mavroyanopoulos), see README.nls
  28. - updated author's e-mail address (jfh@tab.com -> jfh@bga.com)
  29. - new getpass() replacement that displays *'s (Pavel Machek)
  30. - no password required when logging in from ttys listed under
  31.   NO_PASSWORD_CONSOLE in login.defs (Pavel Machek)
  32. - fixed limits code so RLIMIT_AS should work
  33. - upgraded to Debian 2.0
  34. - built a new machine (P2 350MHz, 64MB RAM) so the thing can be compiled
  35.   in reasonable time again
  36. - upgraded to automake-1.3, libtool-1.0h (also new config.guess and
  37.   config.sub that work on i686)
  38. - usermod fixed to handle group names starting with digits (not recommended)
  39.  
  40. shadow-980626 => shadow-980724
  41.  
  42. - security: login no longer gives you a root shell if setgid()
  43.   or initgroups() or setuid() fails for any reason, discovered
  44.   by Ted Hickman <thickman@sy.net>
  45. - remove libshadow.so -> libshadow.so.x.x symlink after install
  46. - a few int -> uid_t type cleanups
  47. - fail immediately (don't retry) in *_lock() if euid != 0
  48. - added sample PAM config files etc/pam.d/{passwd,su}
  49. - preliminary PAM support in su (untested - use at your own risk,
  50.   comments and patches welcome!)
  51. - cleanup and more comments in OPIE code (Algis Rudys)
  52. - added support for TCFS (Transparent Cryptographic File System)
  53.   (use ./configure --with-libtcfs, see http://tcfs.dia.unisa.it/
  54.   for more info), thanks to Aniello Del Sorbo
  55.  
  56. shadow-980529 => shadow-980626
  57.  
  58. - fixed bug in commonio_lock() (infinite recursion if lckpwdf() not
  59.   used and database cannot be locked), thanks to Jonathan Hankins
  60. - fixed bug in copy_tree() (NUL-terminate readlink() results),
  61.   thanks to Lutz Schwalowsky
  62. - no need to press Enter after Ctrl-C to interrupt password prompt
  63. - removed a few harmless gcc warnings
  64. - secure RPC login disabled if <rpc/key_prot.h> not found (glibc 2.0)
  65. - faillog.8: changed /usr/adm -> /var/log
  66. - pwconv.8: documented that it may fail on invalid password files
  67.  
  68. shadow-980417 => shadow-980529
  69.  
  70. - fixed "interesting" strzero() bug introduced by me in 980417:
  71.   strzero(cp) didn't work as intended (the macro used a local
  72.   variable called "cp" - oops...); Leonard N. Zubkoff was the
  73.   first person to report it - thanks!
  74. - fixed usermod -e to accept empty argument (like useradd),
  75.   thanks to Martin Bene
  76. - several changes from Debian 980403-0.2, see debian/changelog
  77. - added contrib/shadow-anonftp.patch (not yet merged, sorry...)
  78.   thanks to Calle Karlsson
  79.  
  80. shadow-980403 => shadow-980417
  81.  
  82. - fixed login session limits (again - broken since 980130)
  83. - more symbolic constants for exit status values
  84. - fixed logoutd to work with 8-character usernames in utmp
  85.   (no room for terminating NUL!)
  86. - various fixes to make the code more glibc2-friendly
  87. - updated doc/cracklib26.diff (fix for empty gecos, etc.)
  88. - updated the files in redhat/ from shadow-utils-970616-11.src.rpm
  89.   (RH 5.0 updates)
  90.  
  91. shadow-980130 => shadow-980403
  92.  
  93. - security: su now creates the sulog file (if enabled and doesn't
  94.   already exist) with umask 077
  95. - hopefully removed arbitrary group size limits (not yet for
  96.   shadow groups though - sgetsgent() still needs a rewrite,
  97.   but I don't want to delay this release any longer...)
  98. - fixed NULL dereference in groupmod -n
  99.  
  100. shadow-971215 => shadow-980130
  101.  
  102. - Debian binary packages can be built without root privileges
  103.   (tar wrapper - debian/tar.c)
  104. - new subdir "redhat" (needs more work, see redhat/README)
  105. - in several places, exit(127) if exec fails with ENOENT, and
  106.   exit(126) on other errors (as in ksh and bash)
  107. - renamed getpass() and md5_crypt() to libshadow_* to avoid name
  108.   conflicts with libc functions - md5_crypt() is also in libcrypt.a
  109.   on Linux/PPC, thanks to Anton Gluck <gluc@midway.uchicago.edu>
  110. - handle crypt() returning NULL (possible according to Single Unix
  111.   Spec) more gracefully (exit instead of SIGSEGV)
  112. - fixed bug in putgrent() that showed up when realloc() moved the
  113.   buffer while expanding it, thanks to Floody <flood@evcom.net>
  114. - fixed bug in login session limits (with a limit set to N logins,
  115.   only N-1 logins were allowed), thanks to Floody <flood@evcom.net>
  116. - upgraded to libtool-1.0h (now recognizes GNU ld on Debian 1.3.1)
  117. - newer config.guess and config.sub (should work on x86 for x > 5)
  118. - removed doc/automake-1.0.diff (obsoleted by automake-1.2)
  119. - added doc/cracklib26.diff (some patches for cracklib-2.6)
  120. - documented more (not all yet) login.defs(5) settings
  121. - replaced more exit status numeric values with #defines
  122. - shadow-utils.spec now generated from shadow-utils.spec.in
  123.   (so I don't have to edit version numbers for every new release)
  124. - groupadd -f option, based on RedHat's shadow-utils-970616-9 patch
  125.   ("force" - exit(0) if the group already exists); other RedHat-
  126.   specific options not added yet (best done in a perl script that
  127.   runs useradd/usermod/groupadd - see Debian's adduser-3.x)
  128. - added -O option (override login.defs values) to useradd and groupadd
  129. - if usermod can't update the group file(s), exit(10) but update the
  130.   password file(s) anyway (as documented by Solaris man page)
  131. - useradd should no longer set sp_expire to the current date (oops)
  132. - configure.in: added --enable-desrpc, check for gethostbyname in libc
  133.   before trying libnsl (necessary for Solaris; not for Linux or Irix,
  134.   even though libnsl may be present), fixed pw_age/pw_comment/pw_quota
  135.   detection, setpgrp vs. setpgid, other minor tweaks
  136. - various */Makefile.am tweaks
  137. - login.defs: added FAKE_SHELL - program to run instead of the login
  138.   shell, with the real shell in argv[0] (Frank Denis)
  139. - login.defs: ignore case in yes/no settings
  140. - more E_* defines instead of hardcoded numbers for exit()
  141. - added sanitize_env() for setuid programs
  142. - login_desrpc() checks for getnetname() errors
  143. - new password is not "too similar" if it is long enough
  144. - replacement strstr() was static, no one noticed :-)
  145. - {pw,spw}_lock() and {pw,spw}_unlock() track the lock count and call
  146.   lckpwdf() and ulckpwdf() as needed, *_lock_first() hack removed
  147. - login sets $REMOTEHOST for remote logins
  148. - added newgrp -l option (Single Unix Spec, same as "-")
  149. - EXPERIMENTAL shared lib support using libtool (libshadow.so saves about
  150.   200K of disk space on Linux/x86), enabled by default if supported by
  151.   the system, use ./configure --disable-shared if it causes any problems.
  152.   Warning: libshadow.so is intended for internal use by this package
  153.   only - binary compatibility with future releases is not guaranteed.
  154.   There should be no need to link any other programs with libshadow.so -
  155.   the libshadow.so -> libshadow.so.x.x symlink is unnecessary.
  156. - pam_strerror() takes one or two arguments, depending on the Linux-PAM
  157.   version (!) - added check to configure; fixed do_pam_passwd prototype
  158. - libmisc/login_access.c should compile on Linux/PPC and Solaris
  159. - added information about the new ftp site to doc/README.mirrors
  160.  
  161. shadow-971001 => shadow-971215
  162.  
  163. - added workaround for NYS libc 5.3.12 (RedHat 4.2) bug to grpck
  164. - updated the RPM .spec file
  165. - renamed rlogin() to do_rlogin() to avoid Linux/PPC build problem
  166.   (glibc defines something else named "rlogin" in utmpbits.h ?)
  167. - added MD5 checksums in Debian packages
  168. - added -p and -g options to vipw (edit the password or group file
  169.   respectively, regardless of the command name in argv[0])
  170. - removed old DBM support (NDBM code is still there)
  171. - fixed a bug in gpasswd: current username was incorrectly identified as
  172.   "root" because of setuid(0) done too early.  It may be a security hole
  173.   when using shadow groups - if "root" is listed as a group administrator,
  174.   any user can add/remove members in that group.  Thanks to Jesse Thilo.
  175. - gpasswd now logs which user (root or group admin) made the changes
  176. - passwd now uses $PATH to search for the chfn, chsh, gpasswd commands
  177. - newgrp and add_groups() allocate supplementary group lists dynamically
  178. - moved check_shell() from src/chsh.c to libmisc/chkshell.c
  179. - CHFN_RESTRICT in login.defs can now specify exactly which fields may be
  180.   changed by regular users (any combination of letters "frwh")
  181. - fixed contrib/pwdauth.c segfault with non-existent usernames
  182. - minor change in lib/getdef.c to handle quotes better (Juergen Heinzl)
  183. - new date parsing code (from GNU date) used by useradd, usermod, chage
  184. - upgraded to automake-1.2, added libtool-0.7 (no libshadow.so yet)
  185. - converted code to ANSI C, added ansi2knr (untested - use gcc!)
  186. - fixed useradd -G segfault (one '*' that shouldn't be there)
  187. - allow 8-bit characters in chfn
  188. - added support for RLIMIT_AS (max address space) in libmisc/limits.c
  189. - changed the handling of NIS plus entries in password files
  190. - some more tweaking in various debian/* files
  191. - logoutd uses getutent() instead of reading utmp file directly
  192. - fixed lckpwdf() called twice (and failing) when changing password
  193.   if the user is not listed in /etc/shadow (Mike Pakovic)
  194. - erase and kill characters left unchanged if not defined in login.defs
  195.  
  196. shadow-970616 => shadow-971001
  197.  
  198. - Debian: mkpasswd no longer installed (dbm files not supported)
  199. - chpasswd checks for shadow/non-shadow at run time, too
  200. - added chpasswd -e (input file with encrypted passwords) - Jay Soffian
  201. - changed libmisc/login_access.c as suggested by Dave Hagewood
  202. - replaced sprintf() with snprintf() in several places
  203. - added lib/snprintf.[ch] (from XFree86) for systems without snprintf()
  204. - minor tweaks in contrib/adduser.c (/usr/local -> /usr)
  205. - non-root users can only run su with a terminal on stdin
  206. - temporarily disabled DES_RPC because getsecretkey() causes login to hang
  207.   for 5 minutes on at least one RH 4.0 system.  Not sure if this is a bug
  208.   in libc, or system misconfiguration.  Needs further investigation.
  209. - check for strerror() and -lrpcsvc (should compile on SunOS again)
  210. - fixed free() called twice in libmisc/mail.c
  211. - added information about mirror sites (doc/README.mirrors)
  212. - updated pwconv.8 and pwunconv.8 man pages
  213. - "make install" now installs pwconv, pwunconv, grpconv, grpunconv
  214. - pwauth.8 no longer installed (AUTH_METHODS not supported by default)
  215. - corrected su.1 man page ($SHELL not used)
  216. - no need for --with-md5crypt if the MD5-based crypt() is already in libc
  217.   (or another library specified in /etc/ld.so.preload - Linux ld.so 1.8.0+)
  218. - cleaned up PASS_MAX in getpass() (127 always assumed)
  219. - default editor for vipw changed from /bin/ae to a real editor :)
  220.  
  221. shadow-970601 => shadow-970616
  222.  
  223. - fixed execlp call (missing NULL) in src/vipw.c
  224. - vipw now preserves permissions on edited files
  225. - commented out the xdm-shadow hack in shadowconfig
  226. - improved RedHat spec file (Timo Karjalainen)
  227. - updated mailing list information
  228. - added information about the shadow paper (doc/README.shadow-paper)
  229. - renamed doc/console.c.spec (confused RPM)
  230.  
  231. shadow-970502-2 => shadow-970601
  232.  
  233. - fixed a typo in libmisc/mail.c causing login to segfault
  234.   if MAIL_CHECK_ENAB=yes (sorry!)
  235. - patches for OPIE support (Algis Rudys) (untested)
  236. - programs that modify /etc/passwd or /etc/shadow will use
  237.   lckpwdf() if available
  238. - now compiles with PAM support! (still untested)
  239. - cosmetic error message changes (prefixed by argv[0]:)
  240.  
  241. shadow-970216 => shadow-970502-2
  242.  
  243. - shadow group support fixes (grpconv didn't work - for some
  244.   reason, putsgent() returns 1 instead of 0 on success;
  245.   now -1 = failure, anything else = success)
  246. - upgraded to autoconf-2.12
  247. - pwconv and pwunconv now follow other UN*X systems and SVID3
  248.   (modify files in place), original versions moved to "old"
  249. - scologin.c moved to "old" (it was only for SCO Xenix) so
  250.   people stop sending patches for scologin.c gcc warnings :)
  251. - don't use the MD5* functions in libmisc/salt.c (glibc has
  252.   the new md5 crypt(), but no <md5.h> and MD5* functions!)
  253. - support for MkLinux, Solaris, JIS, Qmail (Frank Denis)
  254. - "passwd -S -a" now really works
  255. - support for Debian, vipw, a few fixes (Guy Maor)
  256. - src/login.c radius bug fix (Rafal Maszkowski)
  257. - ISSUE_FILE_ENAB -> ISSUE_FILE in the sample /etc/login.defs
  258. - fixes for glibc and DES_RPC (Thorsten Kukuk)
  259. - limits.5 man page (Luca Berra)
  260. - expiry will work setgid shadow too, removed euid 0 check
  261. - added check for a64l() to configure (glibc)
  262.  
  263. shadow-961025 => shadow-970216
  264.  
  265. - major rewrite of *io.c (no more 4 copies of almost identical code)
  266. - use fsync() (if available) instead of sync() when updating password files
  267. - use fchmod() and fchown() if available
  268. - keep the NIS "plus on a line by itself" entries at end of passwd/group
  269. - configure checks location of passwd/chfn/chsh programs (/usr/bin or /bin)
  270. - passwd -S -a: list information about all users (root only)
  271. - passwd -k: change only expired passwords
  272. - passwd -q: quiet mode
  273. - first attempt at PAM support in passwd
  274. - passwd updates the non-shadow password if /etc/shadow exists but the
  275.   user has no shadow password
  276. - passwd logs who changed the password, added hook to allow non-root
  277.   administrators who can change passwords (not implemented yet)
  278. - su sets $HOME even without the "-" option (suggested by Joey Hess)
  279. - added -p (set encrypted password) option to useradd and usermod
  280.   (idea from hpux10 - undocumented option used internally by SAM)
  281. - useradd -D -e does the right thing (set default expiration date)
  282. - USERDEL_CMD in login.defs instead of hardcoded {ATRM,CRONTAB}_COMMAND
  283.   because there are just too many systems that need different commands
  284. - removed #ifdef FAILLOG_LOCKTIME (now always enabled), warning: the
  285.   faillog file format has been changed (somewhere between 960129 and
  286.   960810), please truncate the old file (if any) to zero length
  287. - ISSUE_FILE (may be different from /etc/issue) instead of ISSUE_FILE_ENAB
  288. - wtmp, lastlog, faillog file location guessed by configure
  289. - separate checks for invalid user and group names, max username length
  290.   based on struct utmp (it's not always 8 characters)
  291. - pwck and grpck now check for invalid user/group names
  292. - pwck -q (quiet, report only serious problems) option added
  293. - separate cleaner sgetpwent() without the NIS magic
  294. - NIS entries ignored (never changed) by *io.c, pwck, grpck
  295. - various code cleanups
  296. - new get_my_pwent() function for getting my own username, uid etc.
  297. - faillog opens the file read-write if possible (even if not root)
  298. - passwd -S allowed for normal users (for their own uid only)
  299. - handle the case of login denied to passwordless accounts better
  300.   ("Login incorrect" without "Password:" prompt looks strange)
  301. - corrected author information and removed a copyright restriction
  302.  
  303. shadow-960925 => shadow-961025
  304.  
  305. - fixed a few typos in shadow group code
  306. - don't check for names starting with 'r' to determine if the shell
  307.   is restricted, use /etc/shells instead (for the "rc" shell)
  308. - removed extra definition of LASTLOG_FILE in configure.in
  309. - expiry no longer segfaults if no /etc/shadow
  310. - userdel -r "can't remove mailbox" warning no longer printed on success
  311. - useradd exit codes changed to match hpux10 man page
  312. - fixed possible fd leak etc. in file locking code (lib/commonio.c)
  313.  
  314. shadow-960920 => shadow-960925
  315.  
  316. - bug fixes to the new environment code using malloc
  317. - use hardcoded names instead of basename(argv[0]) for openlog() in programs
  318.   that users can run (chage, chfn, chsh, gpasswd, login, newgrp, passwd, su)
  319. - small fix to isexpired(), and use it in passwd as well
  320. - use strftime() and strptime() if available
  321. - added chmod 600 /etc/passwd- at the end of pwconv5 (backup file may
  322.   contain encrypted passwords!)
  323. - pass size to change_field (chage, chfn, chsh) instead of assuming BUFSIZ
  324.   (nothing bad happened yet, just a cleanup)
  325. - gpasswd should work with both shadow and non-shadow group passwords
  326. - detect unsupported options if no shadow (gpasswd, useradd, usermod)
  327. - passwd -e for sunos4 (ATT_AGE), untested
  328. - read environment from file (ENVIRON_FILE in login.defs), idea from ssh
  329. - small fix to l64a()
  330. - passwd prints a message after password successfully changed (for things
  331.   like poppassd which run passwd and expect some output)
  332. - passwd logs if password was changed by root (as opposed to a luser)
  333. - passwd uses current uid if no username argument and getlogin() fails
  334.  
  335. shadow-960910 => shadow-960920
  336.  
  337. - use malloc for environment variables, no more MAXENV (Juergen Heinzl)
  338. - newusers should work with both shadow and non-shadow passwords
  339.   (still left to do: chpasswd, gpasswd)
  340. - login-static no longer compiled by default
  341. - more SYSLOG() macros
  342.  
  343. shadow-960810 => shadow-960910
  344.  
  345. - updated README.linux to point to the new ftp site
  346. - chfn and chsh optionally (CHFN_AUTH) prompt for password like util-linux
  347. - man pages now closer to LDP standards (Ivan Nejgebauer)
  348. - newgrp uses SYSLOG_SG_ENAB (not SU) as in the /etc/login.defs comments
  349. - obscure.c fixed to compile with HAVE_LIBCRACK
  350. - cosmetic message changes in age.c
  351. - utmp open error check fixed in utmp.c
  352. - grpunconv added (Michael Meskes)
  353. - login reports invalid login time, not "Login incorrect" (Ivan Nejgebauer)
  354. - logoutd sets OPOST before writing to the tty (Ivan Nejgebauer)
  355. - sulogin: don't use syslog(), other minor changes (Ivan Nejgebauer)
  356. - passwords can be changed if sp_max == -1 (now considered infinity)
  357. - usermod: don't use sizeof(struct lastlog) when writing to faillog (ugh)
  358. - started replacing lots of #ifdef USE_SYSLOG with cleaner macros
  359. - contrib/rpasswd.c added (Joshua Cowan)
  360. - PASS_MAX is 127 with MD5_CRYPT (not just for Linux - sunos4 too...)
  361. - workarounds for a RedHat NYS libc getspnam() bug (if /etc/shadow
  362.   doesn't exist, it succeeds and returns sp_lstchg==0 instead of -1).
  363.  
  364. shadow-960129 => shadow-960810
  365.  
  366. - automake, configure checks for libcrypt and libcrack (Janos Farkas)
  367. - added --enable-shadowgrp to configure (shadow groups disabled by default)
  368. - should compile on SunOS 4.1.x - but it does NOT mean that it works :-)
  369. - login sets HUSHLOGIN=TRUE or FALSE (for shell startup scripts etc.)
  370. - hopefully removed all the rcsid warnings
  371. - contrib/atudel perl script to remove at jobs (thanks to Brian Gaeke)
  372. - resource limits (Cristian Gafton)
  373. - workaround for buggy init/getty(?) leaving junk in ut_host on RedHat
  374. - more fixes in man pages
  375. - pwck and grpck no longer suggest to run mkpasswd if *DBM not compiled in
  376. - most programs (groupadd, groupdel, groupmod, grpck, login, passwd, pwck,
  377.   su, useradd, userdel, usermod) should now work with both shadow and
  378.   non-shadow passwords/groups (check for /etc/shadow and /etc/gshadow at
  379.   run time); a few programs still left to do
  380. - mailbox mv/chown/rm in usermod/userdel (suggested by Cristian Gafton)
  381. - new contrib/adduser.c from Chris Evans
  382. - lots of other minor changes
  383. - source tree reorganization, GNU autoconf, portability cleanups
  384. - basename() renamed to Basename() to avoid name space confusion
  385. - new programs to create /etc/shadow and /etc/gshadow: pwconv5, grpconv
  386. - newgrp cleanup and a few fixes
  387. - useradd uses PASS_MAX_DAYS, PASS_MIN_DAYS and PASS_WARN_AGE
  388. - don't make the first group member the group admin by default
  389.   (define FIRST_MEMBER_IS_ADMIN to get the old gpasswd behaviour)
  390. - password aging constants, NGROUPS_MAX and syslog stuff in only one
  391.   place (defines.h) instead of repeating it in all source files...
  392. - added userdel -r safety check (refuse to remove the home directory
  393.   if it would result in removing some other user's home directory)
  394. - usermod -u now correctly checks for non-unique uid (unless -o)
  395. - sync() after updating password files, just to be more safe
  396. - "make install" should install /etc/login.defs if it doesn't exist
  397. - new option to control what happens if we can't cd to the home directory
  398.   (DEFAULT_HOME in /etc/login.defs)
  399. - enter the home directory as the user, not as root (for NFS etc.)
  400. - added check for Slackware bugs (nobody UID -1) in pwck and grpck
  401. - new CONSOLE_GROUPS feature (thanks to pacman@tardis.mars.net), it is
  402.   possible to add specified groups (floppy etc.) for console logins
  403. - new faillog feature: lock account for specified (per-user) time since
  404.   the last failure after exceeding the failure limit
  405. - new man pages (gpasswd.1, login.access.5, suauth.5)
  406. - fixes in man pages, renamed *.4 to *.5
  407. - new "contrib" directory (two adduser programs)
  408. - changed some "system" to "feature" #ifdefs (autoconf someday...)
  409. - sulogin no longer requires to be run from init, should work from rc
  410.   scripts too
  411. - changes to prevent unshadowing with libc SHADOW_COMPAT (get info
  412.   using xx_locate(), modify it and call xx_update(), don't write back
  413.   anything returned by getpwnam() etc.)
  414. - stupid bug fixed in lastlog.c
  415. - don't move non-directories in "usermod -m"
  416. - don't log unknown usernames (passwords mistyped for usernames) (lmain.c)
  417. - macros to get around ancient compilers which don't like prototypes
  418. - make more use of "const" (not everywhere yet)
  419. - added #ifdef AUTH_METHODS - very few people use administrator defined
  420.   authentication methods because many programs are not aware of them;
  421.   not supporting them makes the code simpler
  422. - new "save" and "restore" Makefile targets, thanks to Rafal Maszkowski
  423. - sgetgrent() in libshadow.a is optional, some versions of libc have it,
  424.   see HAVE_SGETGRENT in config.h (grent.c)
  425. - don't use continued lines in /etc/group, the standard getgr*() functions
  426.   don't support that (grent.c)
  427. - removed the third main() argument (according to libc docs, not allowed by
  428.   POSIX.1 - use environ instead) (lmain.c, smain.c, newgrp.c, sulogin.c)
  429. - login access control (lmain.c, login_access.c)
  430. - added copyright notice to login_access.c (from logdaemon-5.0)
  431. - detailed su access control (smain.c, suauth.c) - thanks to Chris Evans
  432. - added closelog() in su before executing the shell (smain.c)
  433. - getting current user name changed (smain.c)
  434. - "x" instead of "*" in pw_passwd, consistent with pwconv (useradd.c)
  435. - getpass() shouldn't return NULL except on errors (getpass.c)
  436. - moved isexpired() to isexpired.c (now part of libshadow.a) from age.c
  437. - SunOS4-like passwd -e (force change on next login) (isexpired.c, passwd.c)
  438. - can use shadow support in new versions of Linux libc instead of libshadow.a,
  439.   see HAVE_SHADOWPWD, HAVE_SHADOWGRP in config.h.linux (shadow.c, gshadow.c)
  440. - "no shadow password" not logged, the same /bin/login should work with both
  441.   shadow and non-shadow passwords (lmain.c)
  442. - some cleanup in various places (lmain.c, passwd.c)
  443. - new program to verify username/password pairs, for xlock etc.; it is not
  444.   installed by default, read the comments first (pwdauth.c)
  445. - authentication programs run with empty environment for safety (pwauth.c)
  446. - added missing fstat error checks (faillog.c, lastlog.c, setup.c, *io.c)
  447. - common code separated from *io.c (commonio.c)
  448. - ownership and permissions on password files are now preserved (we may try
  449.   to make more use of setgid and setuid non-root programs in the future)
  450. - added (untested) MD5-based crypt() from FreeBSD (md5crypt.c), see
  451.   MD5_CRYPT in config.h.linux and MD5_CRYPT_ENAB in login.defs.linux
  452. - termios/termio/sgtty macros cleaned up a bit
  453.  
  454. shadow-951218 => shadow-960129
  455.  
  456. Emergency bug fix release - no new features since 951218.  There are many
  457. new changes, but this bug really can't wait until they are tested.
  458.  
  459. Probably all previous versions of the shadow suite have a serious bug which
  460. makes it possible to overwrite the stack by entering very long username at
  461. the login prompt.  This can give root access to any remote user!
  462.  
  463. Changed the maximum size in login.c from BUFSIZ (1024) to 32 (to match
  464. size of the array in lmain.c).  Aaargh!!!
  465.  
  466. shadow-951203 => shadow-951218
  467.  
  468. Changes:
  469. - Linux utmp handling fixes (utmp.c)
  470. - last failure date printing fixes (failure.c)
  471. - minor fix to compile with USE_CRACKLIB (obscure.c)
  472. - eliminated the use of snprintf (env.c, lmain.c, login.c, shell.c, smain.c)
  473. - basename.c added, replacing duplicated code in various places
  474. - "su -" runs the shell with '-' in argv[0] again (smain.c)
  475. - removing at/cron jobs cleaned up (userdel.c)
  476. - /etc/gshadow should not be world-readable (sgroupio.c)
  477. - if fflush() failed, files were not closed (*io.c)
  478. - login prompt is now "hostname login: " on Linux (lmain.c, login.c)
  479. - "save" and "restore" targets commented out (don't work) (Makefile.linux)
  480. - some minor cleanups for gcc -Wall (unused variables etc.)
  481. - removed README.FIRST (copyrights are OK now)
  482. - updated ANNOUNCE, README.linux, WISHLIST
  483. - as suggested, converted to RCS
  484.  
  485. shadow-3.3.2-951127 => shadow-951203-jfh
  486.  
  487. Changes:
  488. - Added the BSD-style copyright to all of the files.  Any files with the
  489.   old copyright have multiple copyright holders and need to be cleanroomed
  490.   to produce BSD-style copyrightable files, or I need to get the consent
  491.   of the others to change the copyright.
  492. - Changed the ANNOUNCE file to not refer to the README.FIRST file.  Now
  493.   that all of the files should have the correct copyright there is no need
  494.   to refer to that e-mail message.
  495. - Changes SCCS strings to "%W% %U% %G%".  Marek needs to either convert to
  496.   RCS or check into SCCS and then checkout.  I'd suggest using RCS ;-)
  497.  
  498.   jfh@rpp386.cactus.org
  499.  
  500. shadow-3.3.2-951106 => shadow-951127
  501.  
  502. Note: for now this code only supports Linux.  All the #ifdef's are there
  503. (and will be; support for at least SunOS 4.1.x would be nice) but:
  504. - I had to fix some potential security problems resulting from sloppy
  505.   coding (no bounds checking), and it was easier for me to use snprintf()
  506.   (not available on many systems, unfortunately), I'll fix that later.
  507.   Old versions of Linux libc don't have snprintf() either, and the one
  508.   in libbsd.a ignores the max size - don't use it!  (libc-4.6.27 is OK)
  509. - I am lazy and only updated Makefile.linux and config.h.linux this time
  510. - I don't have root access to non-Linux systems (this means no testing)
  511. - this code needs some major reorganization, which will (hopefully)
  512.   make porting easier
  513.  
  514. Changes:
  515. - some code cleanup, prototypes.h, defines.h, Makefile and config.h changes
  516. - login can be statically linked (not that I think it's a good idea, better
  517.   fix the telnetd, but paranoid people will like it :-)
  518. - login is installed non-setuid by default
  519. - check for NULL from getpass()
  520. - wipe cleartext password from getpass() when no longer needed (pwauth.c)
  521. - use standard "Password: " prompt by default (pwauth.c)
  522. - hopefully fixed bogus sigaction() stuff (Linux only) (getpass.c)
  523. - oops, setrlimit wants bytes, ulimit wants 512-byte units (lmain.c)
  524. - Linux has <lastlog.h>
  525. - print ll_host on Linux too (lmain.c)
  526. - size checking in various places (setuid root programs, argh!)
  527. - preserve TERM from getty (lmain.c)
  528. - don't ignore SIGHUP (lmain.c)
  529. - :%s/setenv/set_env/g (setenv(3) conflict) (env.c, lmain.c, login.c)
  530. - remove LD_xxx (env.c)
  531. - use bzero() instead of memset() for BSD portability and less #ifdef's
  532.   (if the system has no bzero(), implement it as a macro using memset())
  533. - the above fixes wrong order of memset() parameters (log.c)
  534. - use getutent/pututline instead of doing it by hand (utmp.c)
  535. - added the new settings to login.defs.linux
  536. - added login_access.c to the distribution (not used yet)
  537.  
  538. ==========
  539.  
  540. shadow-3.3.2 => shadow-3.3.2-951106
  541.  
  542. - added dummy pad.c and #ifdef'ed out references to pad_auth (pwauth.c)
  543. - malloc/strdup error checking, hopefully no more core dumps...
  544. - define HAVE_RLIMIT instead of HAVE_ULIMIT for Linux (config.h.linux)
  545. - changed pathnames on Linux to conform to new FSSTND (/var/log etc.)
  546. - larger buffer for cipher, for md5 crypt() if and when (encrypt.c, passwd.c)
  547. - use POSIX termios whenever possible on Linux
  548. - list.c, removed add_list/del_list from gpmain.c, user{add,del,mod}.c
  549. - strtoday.c, removed duplicates from chage.c, useradd.c, usermod.c
  550. - login -h only for root (lmain.c)
  551. - login -r not needed for Linux (lmain.c)
  552. - sample login.defs modified for Linux (login.defs.linux)
  553. - swapped chfn USAGE and ADMUSAGE (chfn.c)
  554. - added -u to passwd usage (passwd.c)
  555. - no #! check necessary for Linux (shell.c)
  556. - define OLD_CRON for some old incompatible Linux distributions (userdel.c)
  557. - PASS_MAX is now 127 (not 8) for Linux (getpass.c)
  558. - LOGIN_RETRIES, LOGIN_TIMEOUT, PASS_CHANGE_TRIES are no longer compiled in,
  559.   can now be set in login.defs, old values are used as defaults (lmain.c)
  560. - unique uid/gid selection now more robust (useradd.c, groupadd.c)
  561. - UID_MIN, UID_MAX, GID_MIN, GID_MAX in login.defs (useradd.c, groupadd.c)
  562. - CRACKLIB_DICTPATH no longer compiled in, can be set in login.defs (passwd.c)
  563. - PASS_ALWAYS_WARN: warn about weak passwords even for root (passwd.c)
  564. - PASS_MAX_LEN, check truncated passwords again (obscure.c)
  565. - check for weak passwords too if previous password was empty (obscure.c)
  566. - CHFN_RESTRICT: don't let users change their full names (chfn.c)
  567. - Linux has getusershell(), use it (chsh.c)
  568. - check if the new shell is executable by the user (chsh.c)
  569. - sleep before printing "Login incorrect", not the other way around (lmain.c)
  570. - don't be picky about utmp only if any of -rfh flags given (lmain.c)
  571. - do "wheel group" more like BSD does (smain.c)
  572. - use getlogin() in su (smain.c)
  573. - UMASK from login.defs defaults to 077, not 0 (lmain.c, newusers.c)
  574. - #undef HAS_ATRM for Linux until atrm can do what we need (config.h.linux)
  575. - Linux has most commands in /usr/bin, not /bin (age.c, passwd.c, userdel.c)
  576. - ULIMIT from login.defs works on systems using setrlimit() too (lmain.c)
  577. - LOGIN_STRING should work now (pwauth.c, getdef.c)
  578. - kludge to avoid conflict with Linux <shadow.h> (gshadow.h)
  579. - mv Makefile Makefile.xenix ; mv config.h config.h.xenix - so that they are
  580.   not lost when you copy the right ones to Makefile and config.h
  581.  
  582. ==========
  583.  
  584. shadow-3.3.2
  585.  
  586. Original version, received directly from the author.
  587.  
  588.